{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np \n",
    "from PIL import Image, ImageDraw, ImageFont \n",
    "from skimage import transform as tf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def create_captcha(text, shear=0, size=(100, 30), scale=1):\n",
    "    im = Image.new(\"L\", size, \"black\")\n",
    "    draw = ImageDraw.Draw(im)\n",
    "    font = ImageFont.truetype(r\"bretan/Coval-Black.otf\", 22) \n",
    "    draw.text((0, 0), text, fill=1, font=font)\n",
    "    image = np.array(im)\n",
    "    affine_tf = tf.AffineTransform(shear=shear)\n",
    "    image = tf.warp(image, affine_tf)\n",
    "    image = image / image.max()\n",
    "    shape = image.shape\n",
    "    # Apply scale\n",
    "    shapex, shapey = (shape[0] * scale, shape[1] * scale)\n",
    "    image = tf.resize(image, (shapex, shapey))\n",
    "    return image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7f7cc927e470>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW0AAACDCAYAAABGOEpkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztfVtsY0l63lckxatIiqQurZ6e3ZlFgCxg2Fg/ZIFgHyzn\n4mwSI5snwzZg2MgFeUgQIzECX15mFkiATR4cGM5TnI1hG3bsOMDG65fENoxGsA+JN4idGPEVzszO\nzvR0t0RJvIqiRFYepK/0neI5FClRUpNdH3BAiiLPqTqXr776b2WstQgICAgIWA6kHroBAQEBAQGz\nI5B2QEBAwBIhkHZAQEDAEiGQdkBAQMASIZB2QEBAwBIhkHZAQEDAEuFWpG2M+bwx5o+MMX9ijPnR\nRTUqICAgICAe5qZx2saYFIA/AfCXATwD8HUA32ut/aPFNS8gICAgQJG5xW8/C+BPrbXfAABjzC8D\n+AKACGkbY0L2TkBAQMANYK01/me3MY+8AeCb8veHl5/FHRjWWrzzzjvu/Spuq9y/Ve5b6N/yb6vY\nvyQER2RAQEDAEuE25pGPAHxC/n5y+dkE3n33XQDA06dP8fTpU+zt7d3isAEBAQGrB/LjdbiNIzIN\n4I9x4Yj8GMDvAPg+a+0fet+zPMaqE/Yq92+V+waE/i07VrF/xhjYGJv2jUn7cqefB/BTuDCzfNla\n+6WY79jbHCMgICDgdcSdkPaMBw6kHRAQEDAnkkg7OCIDAgIClgiBtAMCAgKWCIG0AwICApYIgbQD\nAgIClgiBtAMCAgKWCIG0AwICApYIgbQDAgIClgiBtAMCAgKWCIG0AwICApYIgbQDAgIClgiBtAMC\nAgKWCIG0AwICApYIt6mn/cogqSBV3OfzFq8yxsS+v+67sx5T//cQhbX8Nl/XR8Ws/Ura/03Op7/f\n69owz/GuO9as/7sLLOI+DFgNrARpK/gwXfc6K4wx7iHw38/TnuvaeN0SQ3cFv2/XEZ3fZv3M/07S\n8W5zPvUY111b9kWPM8uxkvp203toEYg7b4GcX0+sFGn7D9u0v2cFH45UKhX5jPu5qTL114Mbj8cP\nSga6Kdn5JK5t99s8C6kt4nxOW1PPbw+PFXfcWfft9+0hr5Pf/kDcrx9WhrSTSJrEchvS5oPiv+dx\nbqoS2TZ9vW8oGVynSpPaPc9sZlHnM+n6+u1IpVLule/9fsXtN25geugZkX/ekgbVgNXGypC2Qh/k\nJIKZFaps9KEHbqay4wYV3e4bJAAltqTvAbMR97RzvIjzGUesPHdxbVGCI8klzSD8PsYN+g9F2jyu\nf94Ccb9eWCnSTnqY/fc32SehZgP+Pc++/HayXaPR6MFIm8RG+KYLH9r20WgU+ew6Ulvk+fQHvKTZ\nlh7Hb8s000/cfh/SjMVXfwAKeL2wEqRtrcXZ2ZnbhsPh1L/nQTqdRiaTmXhNpVJIp9MTWyaTiWzp\ndNq1UV/H4zEGg0FkOz09deTtk8Zdgepat0wmg3w+j3w+j0Kh4N4DwGg0wvn5OUajkXt/eno6sZHM\nfWQyGaytrU1s2Wx24nWaCUOPPxqNcHZ25s6hbrlczm35fB65XA7ZbHbimvE6EUryp6enE9fq/Pz8\nXu3cmUwm0ge+j7sH/b4ErBZuRdrGmPcBtACMAZxZaz+7iEbNC5L2yclJ7DYYDCLv/d9Og5KMTzj+\n33yQdFPVqscajUYYDAbodDrodDpot9vodDo4OzvD+fl5ZEsiwEWARJ1Op937XC6HarXqto2NDayt\nrcEYEyHL8/NzDIfDiT50Oh2cnp7GHk8JhwSUz+dRKpVQLBbd69raWmKbOZixDbz22ga+FotFrK+v\nY319HeVy2e0/m826jecBmFT+wAVpt9tttFottw0Gg3tV4NlsFuVy2fWFm/Yjm81e62gNWH7cVmmP\nAexZa48W0ZgbN2I8jjy4nU4H3W439rXX67nfzfKQqRLUTRUct1Kp5B4may3S6bQju7g2DwYDtNtt\nNJtNNJtNHB4eOoU4HA7ddn5+vtDzpfBJO51OI5/PY2dnB9vb2xiNRlhbW0OpVEI6nXaEzVkLCe3g\n4ADNZhMHBwc4ODjAyclJ7PEKhQKKxWJkW19fd4ODtRaZTAaFQiFRMarS5kyq3+/j6Ohooh2VSgW1\nWs1tGxsbODs7Q6FQQKFQcOfAv06qtHmdXr586bZer3evM6J8Ph/pR61Ww9nZGYrFIvL5PMbjMYwx\nyGRWYvIcMAW3vcIGr0BWpbUWw+EQJycn6Ha7OD4+xtHREVqtFo6OjnB8fOy2drvtfqOvSfAJOpvN\nOrMBCYjvK5UKzs7OHGHncrmI7VHtklTa7XYbh4eHeP78OZ4/fx6ZEXCGMK9JZx74hJ1Op1EqlTAY\nDBxhl8tljEYj126S9nA4dKTdbDbx0Ucf4dmzZ3j27Bm63W7s8UqlEsrlslON5XIZ1WoVw+HQEXax\nWLzWLk6lraR9fHyMly9fujY8e/YM9XodW1tb6PV6EbMNX0nYah9WR6W11vVxf38fH374Ib75zW+i\n1WpFfBF37ZMolUrY3t7G1tYWTk5OcH5+7q7HeDx2Zq1cLndnbQh4NXBb0rYAftMYMwLwb621P7OA\nNs3fiEvzCM0Nx8fHE4qL74+OjmIjOZIQZ/IoFApOVZdKJff+9PQ0QtilUmli3yQGKu1Op4Nms4nn\nz5/jgw8+QK/XQ6/XQ7/fd69JpoZFwCfsdDqNSqWC8XiMTCaDcrmMRqOB0WiEVCoVMY1QaXc6HRwc\nHODZs2d4//338f777+P4+Dj2eJVKJWJ6qVaraDQaEcKuVCqJ18R33qp5hKT94Ycf4r333sN7772H\n7e1tdLtdDIdDjMdjZ8PWmRBnMr5DlO9PT0/RarUcaf/Zn/0Zms2mU/u63RUqlQo6nU6EsLPZbERh\n53K5B3FmB9wvbkvan7PWfmyM2cIFef+htfZri2hYEuKIdjQaObXV6XTcNHl/f39iOzw8nOt4PmHn\n83k3pe/3+1hfX8fJyYkj1mw260idpg2GnKndlFN8Et/JyQl6vR7a7faEXTbJ1OBnE94kkiDOiXVy\ncoJ6vY52u41+v+8ILynq5fT01M1w9vf38fHHH7vz7JNvpVJBt9t1AxJJiD6BYrGIcrmMfr/vFKR/\n/rhfNU2QuDlzefnyJT766CN3/ul/oKMTuPBXZLNZFItFdyz//BpjnLOVfWw2m3j58mVk8OL7pGtz\n0+tD9Pv9yL1VqVRwcnKCXC7n7rPRaPQgkS0B94tbkba19uPL131jzFcAfBbABGm/++677v3e3h72\n9vZuc8yJML7BYOAImyaRZrOJo6MjR3pqtiAB6JYENY/wgec+OEWnaSbO+TkYDCZI0RiDdDrtTCqN\nRgODwQDj8RjNZtM5lM7Pz52ZJO7hj4v8mNcRFRcZU6lUUCqVUCgUkM1mkclkIkk4mUzGXYPRaDRx\nfuikjYtv1kiPXq/nzkU+n3e/S6VSGI/HWF9fn/Ab0PasRGytjUSGqHMYAM7Ozpz5hOfWnxHF2aTZ\nZ6pYDtaVSiUSqcJBmAo47prEpaHPg/X19YgpLp/Pu77y2gUn5HLj6dOnePr06bXfuzFpG2OKAFLW\n2q4xpgTguwB8Me67Stq3hcYHcyMBdLvda0mbpgANySNRxEEjRJS02RaSdiqViiXuwWDg9nF53hx5\n5/N5VCoVnJ6euqk7SWU0GjnHqp81yNe4EMN5HVFx+6hUKlhfX3fEoKSdTqcxHo8deY7HY0eW3Lgf\nP2mI146DHH/PqT4HNJ7XSqUSiZgggbIdHBiMMZGBQ4kbuCDtXq+HVqvlziXPdalUQrVanSBtjV/n\ntS8UChHSPjk5cQMAVbbeX3pv+TOGeYmbpjg6HrWvStohbnt54QvaL34xlk5vpbR3AHzFGGMv9/OL\n1trfuMX+ZgLVmh/upUr78PAQBwcHaLVajkA5xedDqCSsROwjLk5blTZNM9ba2BBDTmGBaCqyKm3a\njxkxQcJut9uOHP0UcxKYkpRO/WcFCVZDGBkaR6Xtz05InCSsJKWtyTf6OhwOI+Q8Go3c+efsZTAY\noF6vo16vOwXrn0cOUAxT9NvB/w+HQ6fqacqgWaRarToHpZ/gk6S0+RvOCGg+4W94r+i50JBKJfBZ\nQcJWpc2ZB+/fQNqvB25M2tba9wB8ZoFtmQkao6sRDL555ODgAN1uN5JUwykxyc5PUohD3FTXV4Qc\nSHyzCDfg6mGmomMCS6VScQReLpcxHo8dYTebTaytrU3UBVEy8fvBuONZERdvTnVbKBSQy+UmlLb2\nBcCE0uY+SYRU2ACceYTnjuGNceYmRrCkUilks1kXSqmkzVkJ+56ktPv9vpuVnZ+fO/LVqBI/w1CP\nk8vlnNKuVqsuTpvt1YGNDk5eG5IqN72HZkWS0vYHhUDaq4+lC+pUpc045iTzSL/fn7Cp8iH0Q/eS\nzArTnH1q1wUunJZxJhJVXyRVErWaSTgIkbCLxWJE1caRNh14qsDmgT/jIDnGKW32g7OFONOEb0/2\n061pHqF6Nsbg5OQkQuIM3Tw7O3Mqen193YU+ajs4ACapfQDueDRnnJ6eolqtol6vTzhaCT3fvG5q\nHqEDle3loO9fa7YrbsZ2E9L2lXYwj7x+WDrSJlTB+YkWTDumrdkPaaONVJNh5lWocVBbMBVyUpVB\nPtwkxWw2i9FoFAkjZPIJk0B8rK2tOROLxj7Pg7i08lKphHq9jkql4rIHlRD8gYvOvEqlgnq9ju3t\nbQCIzDwAuFkJrxv3Y61Fv9+fmMGsra25LEnNaPQzOGny4mxlY2MDm5ubePToEU5PTyMRHowCYQQL\n33e73Qjh8pWkzaxNEjb3R8HAAcJ3kiYlYuVyubkch8ViEZubm6jX66hWqyiVShETCWcdgbRXH0tL\n2j78cDROdzlV1VRzP064Wq0uJCmBDzXJmw+mr5IJtQsTmg6vKdh+9t14PHaqeGNjA41GA41GAxsb\nG3O1Oc6RWSgU3L5KpZLrRxwhpFIp5PN5lMtlbG5uotfr4ezsDPl83qV+t9ttZ/ZRaAILbd10UFpr\nUSgUcHR0FLHn+pmp6oyjjXp7exsnJycYjUYuC5abxpf3+310u120220cHx+7c0oFSxJfW1tDPp93\n55oiQcNMfdJW4ibh+2JhnhohhULBZXTWajVUq9WIqUSjmgJWG0tL2nHOOSCqwAE4e6iaEOjgqtfr\naDQaqNfriWp2HnAKzU0Vahxhaxgd32ukAlVmuVyOrUlCVVyr1bC9vY3d3V1sbW3N1ea4OO1sNotq\ntRoZfJIIgeYLJuHQPl0oFLC/v+9s30rGCl4vmruUxGkWUbMAHYiMV6bKJmlvbGw4W3g6ncbh4SEO\nDw+RSqVcFAlNaiRtmtQ4UGjCChU3Vbxmhvb7fbTbbeTz+QnSVmck+6GkW6vV5or04T40k5SzIHVG\nBtJefSwtacfBT/wA4JQSH/JyuexSm7e3t91WLBZvffw4AkyK1QWi0SRUnVrNjYkmnU7H2e8ZpUBV\nSNLe2dnBkydP8Pjx47naHOdo5fniwDGL0qZN3hjjfAWMIGEaeBLUnq3OSPaPDlE6RSuVinNQsq00\npWxsbLjwSbY/nU47wgbg4sSpktvtNo6OjhwZqx2bAymVNgDnZGUiD0lbB2GftMvlshtcee/NE+nD\nNviVFzV0NZD264GlJ+0kla2k7TuRaHfd3d1127y24Dj45guaaOKSK/RViZtKm1NqTqUHg4H7HolN\nSXt7extPnjzBJz/5ybnaHBeVomGR19lL1TxCpyTVuYYukgDjMvb8KBwqYSpcjQwhYZJMC4VCJAV+\nNBq531WrVUfY3W7XZWn65pFWq4Xj42NnrvBTwmnT1vej0QiHh4cRHwbP5zSlvbW1hTfeeAOPHz+e\nyySnMwrdbhNGGLCcWFrSjiNBIErcfHiUBBk1sLW1hUePHuHJkyd48uQJKpXKrdtEstH6y1SfSSYS\nv/0aDUKbdrlcniDs4XCItbU1RwYk7bfffvvW/ZgFJGAqayXser2OXC4XqWI4jaBI1n7tDqplP7xN\nFTbDB0naGv/OUD4SNtvgm0eotKlWGZOtg4M6JGme2tjYcKQ9zTxClc7r9PjxY7z11ltzR/oEBABL\nTNq+49GPzuB3NKabZHp6eoqzs7NIZbZFKBT/YaXK1kzKpOxGgiqPA0yj0XD2a2OMC13zHWEsksW4\nbz8Z6DYpznG2eA3j06gLnk+/wBYHIY3d1nBAPzOTUT7FYtGF6bVarcgxNUKD+1YHNM1MVOvqb0in\n07CXFfy63S6Ojo4i9U+Gw6EbRDTckfeXCoFKpeKcwfycZQho92Z5YNZc6ff7E+fUH9TnvT5x91TS\n+4DlxVKStm8GUeIm1KFFZcqYWiZ0nJ+fL7QOMh9s2tEBREh7lrAsxm1rEgcVH0PMmFByenrqikwd\nHR1hf3/f2aCpTjVOeN6++O99x6n/WVxauRJ2sVh051yvG9W6rsyiJhGS9vHxsctE1MExm81G4r61\nPUrcbEe/33cDzHA4RLfbjTiAy+VyhLR5HbV2jW9yq9Vq2NzcdN9Np9OOtFOpVCJp39a8EWfeSprR\nBawGlo60SbBxxO0rbQBTlTYJZFFQstD3qh6vezA1JpjhZbT5spSrkjaV3OHhIcrlslOKDJMj8cyb\n3h5nfiKx8L1+riqUESWqtNkmznC40Yyl8diMGKFjUMMBWT+EAyOPQ38AyVdNE347qLTpJGXtb4ZQ\nshyur7S17xrKV61WHWnHRfmMx+PI4hzdbhf9ft8N8ppHMO+MyK9nMi1aKWA1sHSkDcQv4BtH2L7S\nHgwGyGazEaW9yHKWStQkOJpINCFkGjitX19fd0WIWNek2+06h55P2kdHR26ZLl8pchCZty98VZOI\nJgdRVfv9VtOEr3L1vJPU0um0q6O9sbHhVrGhA5Ek1+12cXp6Gom55/4ZZsgsUg4cqvip9mmDpnnE\n2ot67LlcDrVaLVKrRq+rnge/TGqtVnMx4VTSVNpckk37QgUeV7zsJvdc3P3mX8uA1cDSk3YSYfPh\nUsddOp125hFV2os2j2h6tRLbLHZLtWlzHwBcnXCG3/nmEY0LV5VI5T6vgkuKKvFD24Co2uO1ULJk\n+CIdhZz5qMrUjEomCrEMAYmP6zPSbKIKnueJ548O6DjzCEmeSpu1SQqFAjqdjjueKm09JwAiSpuk\nzaxOlgsmaRtjnNLWRS7UxMNVgua9F/1Zjv8/3/8QsPxYStL2iSSOXPSGZYo7SYd1kFlIioovziQw\n7WaPe1BmdSbFDTLAldKmrXdtbQ3j8RgHBwdOJTJF3lrrnJGsCAggdgYxT/JQko2Uscs0QQBRs4sO\nDEqYDF0sl8tYW1tzdmkSJwmWcelMQyeBtlotAHB91SxGxnHz2Dx/9AMoeVMZl0qliNpnqvv6+jp6\nvV7E78H98LzwOFT67FetVnM10Wkn5/VhBAsLmnE5vLOzs4kSAvMq7aQqlL56v40jOuDVwtKRtkYa\nZLNZWGsjK3treBgVhpZQpdpmOVdufPBV/SXd6ItS5nH7ZP9I1szSo6LUOhwAIg4vqry4VXz8kLvr\nBhZ/AKP5wU/Fpu1ZB0++V2edEjGTXHSmoxmsJMTz83NHitVq1SlvKuXBYIDj42OkUqnIIsgatcOy\nucwe3djYcKYyLdtLf0fcvRF3X3D/WvlvOBxGFpjmzIfH4zqTvBacIfh+j3mukzpj1aavkTJ6bwcs\nP5aOtNUJRaLTDDEtE0qVREce1av/cPZ6PZfBR7Wjquq+++dHYqg9VkmbS2kxiYXTfSVsEqsWxJpl\nJhA366D5ghtnAj6pkTQZS03S7vV6LvqCoYs+aauDcTweO9Km+vVJ++joyBGuJjNRubMyoGZMMpuR\nSpivWp2RhN3r9SLla/XcaAz22dmZM4swYYdhnvy81Wohl8vBGIPhcOhKAqs69kNCr0PcwtP0D3A9\nTiZABawGlo60qUQ1vvf09HSCsNfW1lzihTok6dTz1VS/30cul3MDwbyq5Cbq238w1QyhfR0OhxOE\nXS6XXdlXTvVZejRuXUvdZ9Lxk9rH13q9jkePHmE4HAKAIwgOMDrYqRKl+YAp+CRsEppG8WioHoDI\nGpy8nmwPI4GOj4/R6/ViBwtfaddqNXdP0JbNwY6DuRI212bkoKd+Cx5H1T3NOepj0BrpANxiyPz/\ndY7qadfJL8vLfm9ubrpBXbM7A5YfS0faqkR4o6tpRImbtSw0vIzk5ivtYrEYCVmbJ0TupuYS30HE\nB58EyAeeD6VvHjHGRBZ5oHlA7aN8f11STxz87+zs7LiiTtls1kWpaJKMRjBouVTajUnYDF1U0ubv\nqbRTqRRKpZLLLKVjULNO+drtdiMlC2gb1wGmVCq5vtCEpKF//opDvDd4XDUx6KDEvq+traHdbqNc\nLk+QNhfDoL378PDQzTp809K0a+CDMzDdOJvgAD5tdfuA5cPSkbYqOT5ALAXqK+1MJuPUGZ2RACYU\nFVcF1wiJWZXJbR8Gn7ip5DQiYDQauQeSNmVWnOMMQpVhkoN2HidrHKgU/ap+3FcSqWn4ImPNScpc\nSZ3EqOaRTCbjVrXXlWWOj4+dHfro6CgSVeKbYzROvVQquQGMa0byPCeZRzQJhoOCPyjpe5qkdAEJ\nKm0StjrKp12TWWZFek9w44DI60TxErAaWErS9m9gfdC1ZgeXlwLgHnqqHj60zWbTrcZdrVYdufAh\njANt5HFJFH4MeRKps81qR2equt9Pmgs0uqLRaLh9aWo7TRA+SCz+6jJxJpokMK3cr98cRzgc/Bg9\nQvJst9uugL+uiqMhjFzn0xjjIk14LWimoGmDsw1jjLMlN5tNVxPEV65sU9ziAVTc9Ae8fPnSlanl\n4r+MTuHv1PfAePO41dIpHDSN3490Un+GHwGS5F9RBzUjafwa2xpJ5SOEAi4friVtY8yXAXw3gBfW\n2m+7/KwG4FcAfBLA+wC+x1rbusN2XtfGCWKr1WoArhJLVNEx2YFrMNLOvbW15UL/8vm8y9bjMQh1\n+OlG4lZTTJLC4XRdV6rhiuNxmzqY6vW6IzMALltymh2eqlVXN6eJJYl4fWxtbeHJkyfY3d1FrVZz\nylWJRc8XI3xYozqVSrnjawF/Lt3V6/VweHjoImdIujQ95HI5N9UnyXe73UghKF7XTCaD8/PzSDq8\nLm7gJ7bQHMYysvv7+0ilLmpwb21tOScor5uf9co+67HUp8B7wa/+6A/adG6qjVp9Ej40QoTfr1Qq\n2NnZQb1ed6syBXJeHcyitH8WwE8D+Hn57McA/Ja19l8ZY34UwI9ffvYg8EmbmXX+YrJcjJVqioTN\nmiTquCmXyxFFpGYMqnUWamLsrdptufmV6wh/MQYOFGrnJKiS2TeNlGC/ut3u1BhfkjaTVzY3N9Fo\nNCJq2SdwH9Vq1dWCVtLWFGzdB68Jz10mk3FLhpG0qbbPz89dDRCaE3QJNQ4yDAUkYXNlHYbb0bbN\nRQrUcVsulyODi0Zt+KRNwmZKuzoz6XiMu05+NAcHJo0L54xP7ff6fV0+ju+TqiTq8fi+WCyi0Wig\nVqu5MrmBtFcH15K2tfZrxhi/SPMXAHzH5fufA/AUrwhpU03SGUOFTWWqpK3vGYnBFPJGoxFZx1CJ\n21obKTv68uVL7O/vo9/vO4egvsahXC5jd3fX2YSpIoErZ6uSoCptOpk0xGyaGgMuSJtlUx8/fow3\n3ngDb7zxRoRsfTurD11OjetH+pUE+VuNAtH3XA3HJ20uUjAej9Hv93F0dIRGo4GdnR1HSBsbG25l\nGq25QlKk0qaN//Dw0A1SXMmGoZ0+YesA3m633QDAZchY+rVWqzkTmp4zXg9V2krEvB9I2KrSSbR0\nNjMjVLNDk0L2fBMb96cr3Ggt80Dey4+b2rS3rbUvAMBa+9wYs73ANs0NTp91tRc+XHQwMUZY602Q\nsJvNJgaDgSOVRqPhVLnaAeOUdrPZxMcff4yPPvrI1cbQjaTsg7U1qOyr1Wok+06PR9IuFAruO6xs\nR/srVXoSaG9tNBrY3d3FW2+9hU996lOReiFqX40Dz7EqSDr2/N9yICUxZbNZjMdjp7TV7kulzWxE\n7ouhnPV6HWtra9jY2MCjR49cRiT9Edls1qWecz/cR7/fdwsj0HehSlsTWzi4k7CpnKmwuXo7SRuI\nZoECk3HTPE8kTZpH9L6lL4bKmosSP3r0CDs7O3j06FEk8kXhhwvqQKAbr0sg7uXHohyRDxpPFGce\nYWwvCZvkAMARquL09NQtTttutx2xx0EdVs1mE8+fP8cHH3yAVqsVWYGcCyHEYXNz04VklctlbG9v\nO/MM1S4HDTWPaOIIoyf29/dnUtoknt3dXbz99tv49Kc/HZscMy2pyHeU+psSd1x74mzaVNr+Nh6P\nUa/XXbp3tVrF7u6uW9ORap9qPm4f5+fnru+1Ws3NUvykFsb1a3kDOjgZjbKzs+PMaEk1ZXSxYbVp\n876hiSROaTOzcmtrC7u7u3jzzTfx5ptv3miRDt+5qUQdiHu5cVPSfmGM2bHWvjDGPALwctqX3333\nXfd+b28Pe3t7NzxsPEjazE6jbVkryfEh5GdaHlQdh5zGknjVA8+HnGYUpkVvb29jOBy6sp6anMGH\n3N80XvfFixfO1MDQPi1wpGqYBDMejyMhjklp0ERSjQo1bfAYSQ900iwgzhY+Ta3TWUbzB80ZupG0\n/XroNGNxdfLd3V2cnZ252uN+/Ha1WnXZsd1uFwcHB+j1ejg6OnKrszM6hQMkcFXSVxOztLwvHb/+\nfcHyrvV6HTs7O+57XIuSYZPD4XDCru6bOfzrM8/zMM3BHAj71cTTp0/x9OnTa783K2mby434KoAf\nAvAvAfwggF+b9mMl7bsAlShJm9NPPnhK2iQAkoAmh/i1t5klqY4qkhvthvV63U2XK5WKK7+pGx9y\nmlzYFq6YoovgamlSOr8YqcCHmzMArbOiURxx8AkgjrBVnSVhGnHPgkwmEyFt2rFbrRba7TaMuUpx\n1/h6DqScudBscnZ2hkwm40wXfuw9Q//G4zF6vR4ODg5cEkyv13PVBknaet/4Jg1dSIMDuob88T4k\naXM2l8tOqT9CAAAW8UlEQVTlcHBw4GzLtN9rFAtDQJW0tcTvPKSt12TWwTTg4eEL2i9+8Yux35sl\n5O+XAOwBaBhjPgDwDoAvAfhVY8zfAfANAN9z6xbfArQNqs2XU3MlbJK2JtOQRFVRqdJmmBePQ5Kj\nw5JT6Gw265QUl5diyVTWUmZ7gAulxRC3VOqqfgijM9T5xVobJG22JS6ZSE0Sat6JU24+Yc9DEDcl\nb5p5qtUqNjc3IxmLqVTKETadxiRtVbiqtNPptFuxXmtWs6qeFt/q9Xo4PT2FMcaZyKi0uZCCDtx0\nLsYtpMGKfhqjzX6QtDnocp1LErYm2MTZ1jUixw+lnBVx1yQQ9mpgluiR70/4119ZcFtuDHVEAlfJ\nKMx086M5aMdlZIlPEKqoCE2kUKVNwi6VSmi322i1WrEhbQAiCpLmEYanMRqF/6diY/QJ26imEiVs\nVWm+Ld5aO2EOiSNutYHOe/71dRpUaTNTj8fmwNXpdNyA6g+kVNpcfYbniHXFqdiZJamDNZW1lq3l\n9WTyjpIzz7k/eFBpq8LmYMl7YTweOwcmnYhsJxcR9pV2knnkJtfEvx6BsFcHS5cRGQeSttq2qWhV\nZdMcYsxVsg2Vm6osVdqqhrTcK5WTFiJqt9suhZlpzKr4T05O3N98gElUTOhgMXw6DdXpxQeYKnya\neUSJO4m0k0wjszzgNyUBtWkzw5DRIxy4NEQtzs/AejPr6+vu96z4d3R0hOPjYxweHqJYLEZsyST2\n09PTiMNQC0JxwKZJCohfso73DcmWOQEcbPUaViqVCGFzwIlT2j5pXxfRs+jrE/DqY2VImzc4HyA+\naIzi0OkwAFd3mkRKpcfPGKNLRyWACWVKUmbGH1W1/z0mg7CAP8P1aJZR1c2CP1tbWy6MjQSsERrA\n1YrgWm+bNUk0I1OzMtVGq3Zb9o/HuS2mpe8ztZ2DCQB3vguFghuAdRDlNel0Oi6ph/vhgsF+iV76\nI2gS4wDJUryMl/arE/ozB03OYtlbdVxqVULOhBjhw/ui2Wy6ZBcO6Hrf6gBxXQmERV2jadfpLo4V\nsBisBGkD0eQXkg8JlUVzaO/m/5UQ0umrwj7Hx8d48eIF0uk0qtWqq0tMxVQsFicebHVEUQXyAfRX\nyBmNRs58ow8pFaW/6UovGhLIqXitVsP29rZz6mnYITcq2V6v5zI5m82mWwlH65JMi/ee53roK9+T\nqBifzGJYWqtDZxTMfDw+PnaLObAWCHCl3GkuIoFrIpSaWDjT4jFomqKK7vV6kaqCvC6cDTWbTRSL\nRQBw60jSXObH9PM+Y9t00eVyuexMKBy4e70eMpkMKpWKawdDEJMyaxeBaZEmACb6FfCwWBnSBiYL\nFmlpUN9BSVVN9UtFStLmlL1Wq7lIAA1DizM1qENU60P7K3TTBKLE7BO2n6DDY1Cdsn8kbYbJpVIp\nl1bfarWculS1T9I+PDyM1K1Y9Mr0fPUdlGw71elgMJgocsSZj5I2E4i0qBdL6mq8s8a2s7iXnl8d\nLHXGo/H1vNbAVXEqzcAEECkgtb6+Hjsj8gcpZj2Wy2XnX9FjAHAVCv31TP17fFFQITBPJFDAw2Bl\nSNu/0fyIEk5ZWbyHCps2T0YDkLTpuGLEAR9iqjddK5HTeVXaHCBoCvHjw9PptIvlpqJUsvbVNh2M\nnH4DiJC2Frp68eKFMxPRmepP76m06cjT0qg3cXrFXY+kjcoTuCAMZkj6lel4XtR5RzCyhiTMfZKw\ntVCVOpe54C7PMRW2f/6TlDYTeXiuOFDQYcz7UJ2YtFX7pD0YDNy+mM15dnbmlmRjOVddwzTpfr8N\neM7YlqTkm0DmrwZWhrSBqLrTcCuaEvjAMAKA5EViV1XKcDw+5Gr/ZIgYw8T0cyonKj/WnVDC1toT\nVJMa6eKrbRKTTrl9Jyin6KVSKWLq4aK4GnuupK1FragIp2VWznMtVG1qu0m+fM+lt6Ypbc4yOEuh\nM9MnbZ1hsW9xa0LynNDv0e12Xd1uLbXL71Fp85oBcOe7Wq1OrKrD/rNtWr2PpE1/hw7ovC8Zluqb\nR+6CuNX8MW3ADpmUrwZWirSBKHHTps1pNO2XNIlolAHDz7h4LM0ltFtyfyQWLcrPaTgJgypX7al+\n9iU3kpJP2r7a1vAwPmQkbUazMA1a1ySkovXNIwxNJDFxVsCZyCKuA0mLRKDmAg1bPDs7c845TSbS\nGttq86fJq9FoOLLkPqm2udGWr4sbnJycOCLWcEtdnk4dgVTaHAx5PZjezv2peUTPg9q0uUgDq0iy\nDjqPMR6PndJWm7Yq7XlCLG9yvQI5v9pYCdJOusGULEiSTMao1WpoNBrodrs4OTlBLpdLnCZT/Rwe\nHrpoBCa96DJPcQ680WiEw8NDtFqtyMOotmwlc5Ir1R9jjv0kG1WVrDtNwvMr6bFvJChmYqbTaddP\nXV4rqTjRPPBD2TR9XqNr2BdGgnDldfoRGFPPCBBrrTuPqkaZFu6HMOpq6VTZaubSwYwRKzqwcuCl\nOQ2AWwKOyTzaDs64/FmGOqhZE11nW2q2oaBoNpuuvgrbp/f7IoiVs1At7cqoKLV13yTsMOBusBKk\nnQTfI86HuVAouMI85+fnSKfTzvmjy3b1ej0XFcByoaPRyC2X5S+eGze1ZIp20kYSZ8SDRnlwFRZW\nH6QzVePFNbWdv+c0nIOKrmOoNadpBmq1WpFSnotYuZv2Xn8BAv+8sWAUC2cxEobErLMSrVFCfwM3\nhvf5A4RGENHurIOJkhFDLP1kLK1Lw2vs15jhxrBPP9aaJpv19XXUajUX5w1c+RuA6BqSHKSHwyHK\n5bK7j/X1tkilUhPLlbEGt1/CdhFRRQG3x0qTNjDpGGKdCS4txr9rtZojUqpbPni0D7PoUFxiRtLq\nINZa9Ho9dLvdyMPNv1mbhNEB/rJbzWbTlTUFrkLc4rLxqBRJiErcNHmQFLhIAFPtleBpUrkN2E5/\n00UJqPK02Fe9Xnf1zZkhqrbouBWDGHetjmFNiKL9G7gyA5GEeM2o4NWEQqLWWiQAnBlNB3hdBJiD\nKu87dYrTAclBWmdy/Jukzcijbrfrwgz1nl4E0uk0arWai5Kq1+sYj8eu5C3DQXk+Ax4eK0/aQPQm\nV9Km6t7Y2HDT0Waz6Qo4GWMiDiKSHYBIrQhuSaQdV33OfyVpc4pM0tZkE6pGhpfpg0QCt9bGkiWL\nFzEagSuR+wMPFdZtwRocuqQaSZkEqEt3kdDq9bpbmadQKOD4+NipTToN4xQuwxZ5LtSpyhR1HUg0\nqYU+jLW1NZdCT9s1cJURqe/9GRk3Dpq8HjTFKGmz/+xPp9Nx55yDKvvc6XRcfHrSPX0bpNNp7Ozs\nYGdnx/l11BGsjvaAVwMrfyV8pxDtnErew+EQrVbLVYRjBIiG/SlRxNlPp3nd/bKsGqGgnwGTSpuq\nUG2idHppRAYVN8P+VG0Xi0UXFUPyYxv4Oz+1/bbgslncNDmJhM3Bh0pbVSiJTsnLN48oYdIOrwob\nuEqwUtLkWpwAnM2aYaF6DTgg0rbNRBo6MeMGD/96qIOaES1sl7+mpSptNZNoOYRFI5PJuMU7WB6B\n50uFwV0m9wTMh5UnbYIqlKTtr7Tebrcjq7/Qtnx+fu6clYeHhzg8PESn07mzdvK4NMOoHX59fd0l\nfvip52w3wxF9pc14cTrUSDizpDHfBDQ5+RsAF+miyo6krSvzpFIpR2y0wftkqa9UhKzqB1zNiBS6\nMIWW71WnI2ci/A6ACHEltUEdsLqAL0mb1yqXy2EwGERmdsBVrZz7wtraWoSwuYgI7en++Qx4eKw0\naccl3CTBd4aRGKlU6fWv1WrodDoTiyjELaygdUtmhXrstRLdLPUoCLURV6tVt0YibZNUdHcdDaBR\nFzw2a45rFA3Vp59d2O/3I5EwTMCJS3HnQgckGjWV+OCg4C+UHBclQTOBv2nkifofSP6azKWlVjUT\nlDHbauenw1kdsFqV8K6uE30F7XYbR0dHiecz4OGx0qQ9DzQ5hQsQpNPpSBgaK/l1Op3EeGr/73kf\nNo14ARAh7ll/z4eMfel2u84UohEq/PuuoKTNGYFm+9GmT6LTkrqp1MX6jjRnaNakJiUxfJFKlWYk\nrT/iQ5VvpVJx5pgkM1fc9QWisyKStib6aFEqmku0BjdDRUnaNCUxM5KvHDjuAhwAObvgmqM0L81y\nPgPuF4G0L0GVx9AqfahJ2FpknxEGukqKvipBzgO/DgSAuRU31ZzGJ/Oh18JITBa5C9CZp+Fso9EI\n7XbbKW3N+AOurgFJT5W21ihnu7lOJ3/DwYpFo6a1jUpbzTEaTQJcnXdeV43TBq5Im0qbYZ8kbMaE\nA9F67HSUsniUkna1Wo3UnWE77mpw5YBA0qaZkGalWc5nwP0ikPYltFKbRjP48cDMpiSBc8UUbnSe\n0QQxr1MvTmnP89D6Spsp1n55UZor7hIkAzUlaEKKr7TpBOV16PV6kYWAfaVNlUvTg64ROk2ZklhZ\nrVErBQJX55yqWB2B7BNwFenT7XYjy9LR/8DzrtmsGltP8wiJm0qb2Ze8j2guuQv4Srvdbrswv1nP\nZ8D9IpD2JfjQ82HSWiS6kShYRY9F95nezodATRDzQJW2j1mJW23aSppUhVxo4D5IWwk7nU47pe3X\n1tAEDm5K2r55RG3adGZykNK66XEgUfNcFQoFt9akDpIkSw2BY/Eu9o/nVCN3yuVyJPsSuLquFAXW\n2ljzSLVadcfTeuJ3RZoa3sjBnOdn1vMZcL8IpH0J2jP5MBM6VeXGEDNNE/drQfMBndcGyAeY+ydR\n+ftPApU2q8/5McH+bOEubdpx8AclrXVBRx376pPZxsaGG3A0iYbkRpK9bmbCc8Trrb/RkEgOOn4i\nDnCVyu4vJ6clCbQWSdx94Kfus8QuF3DQFYmo7hcN2tY5U9DBYtbzGXC/mGVh3y8D+G4AL6y133b5\n2TsA/j6Al5df+wlr7X+5s1Y+IOKcSH4hKdpiS6WSizDhEldc0HdW0M6pG1Pua7Way1SbRtxaz4MK\njYrNWhux19/3w/j48WN84hOfwPb2NjY2NlxMsKZ8k+C0iuGjR49wdnY2sSYmt2q16vbJc3QdtK4G\nk2s05Z2ETd9AvV5315VK2a8/s729jUajgWq1GjG5xIG5ApVKBZubmy5DNy6s8a6ULknb7wfLCcxz\nPgPuB7Mo7Z8F8NMAft77/CettT+5+Ca9WiAp86EmoWg4lBI2a5hw08WBZwErwTHWWtO7NzY2XF2I\n68IXaZMErmK5SUIMdWs0GvdO2pubmy4Db2NjA8VicaJOB8mUhKlZlMyg1Noi+j2SjD9j8qHlDZg0\nw2qQ6hjN5/OoVqsTvg1rraujoq/1eh2NRgOVSsWZ25JA00y1WnX3Uz6fd2tQ6naX5pG4frCo1azn\nM+D+MMtq7F8zxnwy5l+vReyPlkPVsDDa/ehdZ7yvv807raV5QDcSN80m05Q2BxldZEBT7bkG5ebm\n5p0mCSWBAxu3YrEYiWOOU9r1et2pUr73KwXSllypVNw5us405del0bouHIyZpelvdFCq2meWZ6VS\nQblcvlZpk7QrlYpzwLJGuL+a0V0mt8TNXorF4tznM+B+cBub9j8yxvwAgP8J4Eesta0FtemVgppH\nfAJUu7HG1eo277TWr6qmqlmV0CxKm+3VlPZqtRqpeXLf0NR6Zmuyrb69m6TNjFAOjHElQ3mOuF03\nnVefA99rFImWDIjbGO3ib37lx1mUNgmbkRr+wgiMrrkrxPWDYmHW8xlwfzCz3AyXSvvXxaa9BeDA\nWmuNMf8cwK619u8m/NYusxPDT27hq79qNm3d/naTvmucNjdVonw/S5u1bXQsqbPsvuErZN8kQsKm\nQ0zbO63Neo7iVLsi6ZpomJ++xl1TJXwen23Qvk1zHGv/ko5x03toXky75647nwF3g0sxMXHCb6S0\nrbX78ufPAPj1ad9/99133fu9vT3s7e3d5LAPAn0oFXGk6cdUL9Lr7j9QcW3y23xfbZsXfpq4/17N\nFlrJMCk71I/SSIrWiDum/7lPsPMmNsUR+bTvkhB1n0lC4b4x6/kMWAyePn2Kp0+fXvu9WZX2W7hQ\n2t96+fcja+3zy/f/BMBfsNZ+f8Jvl1ppzwOfFPX1togjgnkepDiyfsjrch1xK+IILe7vuHNzW7KJ\nu57Xkbb/mtSGaX2Z1uf7wl2cz4DZcWOlbYz5JQB7ABrGmA8AvAPgO40xnwEwBvA+gH+w0NYuMdRW\nepM47ev2vaj9LLptN23HtL/1c1XTACb+1vd32a9Z9n3TdiT186GuUyDqVxMzKe1bHeA1U9px7xeJ\n61RpEl4F5TYNs/blurbPOhDMimlqeNZ2zKq0b3Kcu8aiz2fA7FioTTvgerzKN/er3LbrME/b76Kf\n93XuXsVr9Cq26XXE3RafeI0xbWp5F/+bp00P2c77/N8i1Op9XaNX5ZxN+9+rov5fdwTzSEBAQMAr\niCTzSFDaAQEBAUuEQNoBAQEBS4RA2gEBAQFLhHsl7VmyfZYZq9y/Ve4bEPq37Fj1/ikCaS8Qq9y/\nVe4bEPq37Fj1/imCeSQgICBgiRBIOyAgIGCJcC9x2nd6gICAgIAVRVyc9p2TdkBAQEDA4hDMIwEB\nAQFLhEDaAQEBAUuEeyFtY8znjTF/ZIz5E2PMj97HMe8SxpgvG2NeGGP+j3xWM8b8hjHmj40x/9UY\nU33INt4GxpgnxpjfNsb8X2PM7xtj/vHl50vfR2NMzhjzP4wxv3vZt3cuP1/6vimMMSljzP8yxnz1\n8u+V6Z8x5n1jzP++vIa/c/nZyvTvOtw5aRtjUgD+DYC/BuBbAHyfMebTd33cO8bP4qI/ih8D8FvW\n2j8P4LcB/Pi9t2pxOAfwT6213wLgLwL4h5fXbOn7aK09BfCd1tpvB/AZAH/dGPNZrEDfPPwwgD+Q\nv1epf2MAe9bab7fWfvbys1Xq31Tch9L+LIA/tdZ+w1p7BuCXAXzhHo57Z7DWfg3AkffxFwD83OX7\nnwPwt++1UQuEtfa5tfb3Lt93AfwhgCdYkT5aa/uXb3O4qClvsSJ9Ay5mSgD+BoB/Jx+vTP8AGExy\n1yr1byrug7TfAPBN+fvDy89WDdvW2hfABekB2H7g9iwE5mJ90M8A+O8Adlahj5emg98F8BzAb1pr\nv44V6dsl/jWAf4aLwYhYpf5ZAL9pjPm6MebvXX62Sv2birByzd1h6WMpjTHrAP4TgB+21nZjYu6X\nso/W2jGAbzfGVAB8xRjzLZjsy1L2zRjzNwG8sNb+njFmb8pXl7J/l/ictfZjY8wWgN8wxvwxVuT6\nzYL7UNofAfiE/P3k8rNVwwtjzA5wsVo9gJcP3J5bwRiTwQVh/4K19tcuP16pPlpr2wCeAvg8Vqdv\nnwPwt4wx/w/AfwDwl4wxvwDg+Yr0D9bajy9f9wH8Z1yYYFfl+l2L+yDtrwP4c8aYTxpjsgC+F8BX\n7+G4dw1zuRFfBfBDl+9/EMCv+T9YMvx7AH9grf0p+Wzp+2iM2WRkgTGmAOCv4sJmv/R9AwBr7U9Y\naz9hrf0ULp6137bW/gCAX8cK9M8YU7ycAcIYUwLwXQB+Hyty/WbBvWREGmM+D+CncDFIfNla+6U7\nP+gdwhjzSwD2ADQAvADwDi5G/F8F8CaAbwD4Hmvt8UO18TYwxnwOwH/DxcNgL7efAPA7AP4jlriP\nxphvxYWjKnW5/Yq19l8YY+pY8r75MMZ8B4Afsdb+rVXpnzHmbQBfwcU9mQHwi9baL61K/2ZBSGMP\nCAgIWCKEjMiAgICAJUIg7YCAgIAlQiDtgICAgCVCIO2AgICAJUIg7YCAgIAlQiDtgICAgCVCIO2A\ngICAJUIg7YCAgIAlwv8H5gxxYIfptQIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7ccd6c50f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from matplotlib import pyplot as plt\n",
    "image = create_captcha(\"GENE\", shear=0.5, scale=0.6)\n",
    "plt.imshow(image, cmap='Greys')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from skimage.measure import label, regionprops"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from skimage.measure import label, regionprops\n",
    "from skimage.filters import threshold_otsu\n",
    "from skimage.morphology import closing, square"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def segment_image(image):\n",
    "    # label will find subimages of connected non-black pixels\n",
    "    labeled_image = label(image>0.2, connectivity=1, background=0)\n",
    "    subimages = []\n",
    "    # regionprops splits up the subimages\n",
    "    for region in regionprops(labeled_image):\n",
    "        # Extract the subimage\n",
    "        start_x, start_y, end_x, end_y = region.bbox\n",
    "        subimages.append(image[start_x:end_x,start_y:end_y])\n",
    "    if len(subimages) == 0:\n",
    "        # No subimages found, so return the entire image\n",
    "        return [image,]\n",
    "    return subimages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "subimages = segment_image(image)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(subimages)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7ccd6c3ba8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, axes = plt.subplots(1, len(subimages), figsize=(10, 3)) \n",
    "for i in range(len(subimages)): \n",
    "    axes[i].imshow(subimages[i], cmap=\"gray\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.utils import check_random_state\n",
    "random_state = check_random_state(14) \n",
    "letters = list(\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")\n",
    "assert len(letters) == 26\n",
    "shear_values = np.arange(0, 0.8, 0.05)\n",
    "scale_values = np.arange(0.9, 1.1, 0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def generate_sample(random_state=None): \n",
    "    random_state = check_random_state(random_state) \n",
    "    letter = random_state.choice(letters) \n",
    "    shear = random_state.choice(shear_values)\n",
    "    scale = random_state.choice(scale_values)\n",
    "    return create_captcha(letter, shear=shear, size=(30, 30), scale=scale), letters.index(letter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The target for this image is: L\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7cc4c61c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "image, target = generate_sample(random_state) \n",
    "plt.imshow(image, cmap=\"Greys\") \n",
    "print(\"The target for this image is: {0}\".format(letters[target]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "dataset, targets = zip(*(generate_sample(random_state) for i in range(1000)))\n",
    "dataset = np.array([tf.resize(segment_image(sample)[0], (20, 20)) for sample in dataset])\n",
    "dataset = np.array(dataset, dtype='float') \n",
    "targets = np.array(targets)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import OneHotEncoder \n",
    "onehot = OneHotEncoder() \n",
    "y = onehot.fit_transform(targets.reshape(targets.shape[0],1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y = y.todense()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X = dataset.reshape((dataset.shape[0], dataset.shape[1] * dataset.shape[2]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split \n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.9)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Classification"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.neural_network import MLPClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "clf = MLPClassifier(hidden_layer_sizes=(100,), random_state=14)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/robert/Programs/anaconda3/lib/python3.5/site-packages/sklearn/neural_network/multilayer_perceptron.py:563: ConvergenceWarning: Stochastic Optimizer: Maximum iterations reached and the optimization hasn't converged yet.\n",
      "  % (), ConvergenceWarning)\n",
      "/home/robert/Programs/anaconda3/lib/python3.5/site-packages/sklearn/metrics/classification.py:1113: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
      "  'precision', 'predicted', average, warn_for)\n",
      "/home/robert/Programs/anaconda3/lib/python3.5/site-packages/sklearn/metrics/classification.py:1115: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
      "  'recall', 'true', average, warn_for)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.92307692307692313"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.fit(X_train, y_train)\n",
    "\n",
    "y_pred = clf.predict(X_test)\n",
    "\n",
    "from sklearn.metrics import f1_score\n",
    "\n",
    "\n",
    "f1_score(y_pred=y_pred, y_true=y_test, average='macro')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import classification_report"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       1.00      1.00      1.00         4\n",
      "          1       1.00      1.00      1.00         1\n",
      "          2       1.00      1.00      1.00         6\n",
      "          3       1.00      1.00      1.00         7\n",
      "          4       1.00      1.00      1.00         3\n",
      "          5       1.00      1.00      1.00         3\n",
      "          6       1.00      1.00      1.00         4\n",
      "          7       1.00      1.00      1.00         4\n",
      "          8       1.00      1.00      1.00         4\n",
      "          9       0.00      0.00      0.00         0\n",
      "         10       1.00      1.00      1.00         6\n",
      "         11       1.00      1.00      1.00         3\n",
      "         12       1.00      1.00      1.00         5\n",
      "         13       1.00      1.00      1.00         4\n",
      "         14       1.00      1.00      1.00         6\n",
      "         15       1.00      1.00      1.00         2\n",
      "         16       1.00      1.00      1.00         3\n",
      "         17       1.00      1.00      1.00         5\n",
      "         18       1.00      1.00      1.00         4\n",
      "         19       1.00      1.00      1.00         3\n",
      "         20       1.00      1.00      1.00         4\n",
      "         21       1.00      1.00      1.00         7\n",
      "         22       1.00      1.00      1.00         5\n",
      "         23       0.00      0.00      0.00         0\n",
      "         24       1.00      1.00      1.00         4\n",
      "         25       1.00      1.00      1.00         3\n",
      "\n",
      "avg / total       1.00      1.00      1.00       100\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/robert/Programs/anaconda3/lib/python3.5/site-packages/sklearn/metrics/classification.py:1113: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n",
      "  'precision', 'predicted', average, warn_for)\n",
      "/home/robert/Programs/anaconda3/lib/python3.5/site-packages/sklearn/metrics/classification.py:1115: UndefinedMetricWarning: Recall and F-score are ill-defined and being set to 0.0 in labels with no true samples.\n",
      "  'recall', 'true', average, warn_for)\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_pred=y_pred, y_true=y_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def predict_captcha(captcha_image, neural_network):\n",
    "    subimages = segment_image(captcha_image)\n",
    "    dataset = np.array([tf.resize(subimage, (20, 20)) for subimage in subimages])\n",
    "    X_test = dataset.reshape((dataset.shape[0], dataset.shape[1] * dataset.shape[2]))\n",
    "\n",
    "    y_pred = neural_network.predict_proba(X_test)\n",
    "    predictions = np.argmax(y_pred, axis=1)\n",
    "    assert len(y_pred) == len(X_test)\n",
    "    predicted_word = str.join(\"\", [letters[prediction] for prediction in predictions])\n",
    "    return predicted_word"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<bound method MLPClassifier.predict_proba of MLPClassifier(activation='relu', alpha=0.0001, batch_size='auto', beta_1=0.9,\n",
       "       beta_2=0.999, early_stopping=False, epsilon=1e-08,\n",
       "       hidden_layer_sizes=(100,), learning_rate='constant',\n",
       "       learning_rate_init=0.001, max_iter=200, momentum=0.9,\n",
       "       nesterovs_momentum=True, power_t=0.5, random_state=14, shuffle=True,\n",
       "       solver='adam', tol=0.0001, validation_fraction=0.1, verbose=False,\n",
       "       warm_start=False)>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.predict_proba"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "GENE\n"
     ]
    }
   ],
   "source": [
    "word = \"GENE\"\n",
    "captcha = create_captcha(word, shear=0.2) \n",
    "print(predict_captcha(captcha, clf))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7f7cc4835320>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nRK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7cc4892390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(captcha, cmap=\"Greys\") "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAACXCAYAAAAIwG84AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztvU2sbNl5Hfbt+1M/9773uqlWWoJImEhgyYFCGhRBcSAH\nYAcRHCEwoMADQjZgWElkZRDOMpDsiZAggyQDThx4EFEQJCCSBQ0UKxNFFoIMNCIp2bEpWJYgSE2T\nbJHdze53/+r31vHgvXXuOqu+fc6pqlOndt23F3BwqurWPT+7vr32+n72PqEoCsvIyMjIyMjIyKjH\nyaEvICMjIyMjIyPjGJBFU0ZGRkZGRkZGC2TRlJGRkZGRkZHRAlk0ZWRkZGRkZGS0QBZNGRkZGRkZ\nGRktkEVTRkZGRkZGRkYL7CSaQgg/EUL44xDCn4QQfq6ri8p4tZDtKGNXZBvK6ALZjjKaELZdpymE\ncGJmf2Jm/7mZfcvMvmJmP1UUxR/L9/JCUK8AiqII2/xftqMMxjZ2lG0og5G5KKMLxOzobIdjftbM\n/rQoirfNzEII/9TMftLM/rj2v/aIEII9efKk3J4+fWpPnjyxb33rW/bpT3+68hm28Xhso9FobTs5\n6SZz+aUvfcl+5md+pvX3l8ulXV9f283NjV1fX1de39zcrG23t7c2nU4r22w2s+l02sn194DWdvSz\nP/uzZmb2h3/4h/bWW2/ZxcVFZRuPx3Z+fm6DwaDczs/P7fz8vJML3fS37Ap9nLcoCpvNZmvbb/7m\nb9pbb71l19fXdnV1Vdrk1dWVTSYTd1sul3Z/f1/ZlsvlPi+/tQ194QtfMDOzr371q/bjP/7jdnl5\nWdlGo5GdnZ3Z6empnZ2dldvp6WknF/qlL33JPv/5z9vV1dXapv0cr/FbzOfzcpvNZtbVwsSnp6du\nX7q8vLRnz55VtqdPn9rTp09tPB6vbaPR6GjuOYLMRQmcN3Uu2kU0fdTM/h29/4a9MLqdEUJYe+3t\nseH9yclJpQMPh0MbDod2dnZWvmbjPT8/XyNGbF2JppOTk40ItyiK8nr4OgeDgQ2HQ1ssFrZcLivG\nwG1xcnJiJycntlwu7ezsrDxmbI+NP9fXe0ZrO9Jr0vvm+8eG37MLbPpbdoU+zlsURcX+sYUQKiJC\n/67trf0SCCHs06a2tiGzdTtiu+GtC8SO7fEP9mzfzHf7as+643JbaX+LtdEx3PNLZC5K4Lypc9Eu\n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\nyMjIyGiBfw/yIV5jtPeAcQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7cc4738160>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "subimages = segment_image(captcha)\n",
    "f, axes = plt.subplots(1, len(subimages), figsize=(10, 3)) \n",
    "for i in range(len(subimages)): \n",
    "    axes[i].imshow(tf.resize(subimages[i], (20,20)), cmap=\"gray\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7f7cc3960828>"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7cc473ffd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "image = create_captcha(word, shear=0.2, scale=1.1, size=(len(word) * 20, 30))\n",
    "plt.imshow(image)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def test_prediction(word, net, shear=0.2, scale=1):\n",
    "    captcha = create_captcha(word, shear=shear, scale=scale, size=(len(word) * 20, 30))\n",
    "    prediction = predict_captcha(captcha, net)\n",
    "    return word == prediction, word, prediction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from nltk.corpus import words"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "valid_words = [word.upper() for word in words.words() if len(word) == 4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "if False:\n",
    "    correct = 0\n",
    "    incorrect = 0\n",
    "\n",
    "    for word in valid_words:\n",
    "        shear = random_state.choice(shear_values)\n",
    "        scale = random_state.choice(scale_values)\n",
    "        subimages = create_captcha(word, shear=shear, scale=scale, size=(30, len(word) * 25))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number correct is 3446\n",
      "Number incorrect is 2067\n"
     ]
    }
   ],
   "source": [
    "num_correct = 0 \n",
    "num_incorrect = 0 \n",
    "for word in valid_words: \n",
    "    shear = random_state.choice(shear_values)\n",
    "    scale = random_state.choice(scale_values)\n",
    "    correct, word, prediction = test_prediction(word, clf, shear=shear, scale=scale)\n",
    "    #print(correct, word, prediction)\n",
    "    if correct: \n",
    "        num_correct += 1 \n",
    "    else: \n",
    "        num_incorrect += 1\n",
    "        #if len(prediction) == len(word):\n",
    "        #    print(word, prediction)\n",
    "print(\"Number correct is {0}\".format(num_correct)) \n",
    "print(\"Number incorrect is {0}\".format(num_incorrect))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "correct"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6250680210411754"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p = num_correct/(num_correct+num_incorrect)\n",
    "p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.96059601"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "0.99 ** 4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import confusion_matrix \n",
    "cm = confusion_matrix(np.argmax(y_test, axis=1), np.argmax(y_pred, axis=1))\n",
    "cm = np.array([row / np.sum(row) for row in cm])\n",
    "np.fill_diagonal(cm, 0)\n",
    "# cm = np.log(cm + 1e-16)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n2m7ktjpVdSTbM1lP3eU1y4UAwGnBbXUAACZzg2gAgJNkJgsAYDIhCwBgACELAGAAIQsAYAAhCwBg\nACELAGAAIQsAYAAhCwBgACELAGAAIQsAYAAhCwBgACELAGCAaSGrqh5cVW+oqktWjzdU1VVV9RWz\nagAAmKW6ezMDV31rkq/v7nsfc743VRMAwLVRVenu2vW1TQSaqrpDkpcluUd3v/eY14QsAOC0cKKQ\nNX1PVlWdleT5SR59bMACADhTbGLj+39J8ubu/tUNjA0AMMVZMwerqoNJHpLkbidqd+GFF159fPDg\nwRw8eHBkWQAAe7IsS5Zl2VPbaXuyqurmSV6f5ILufs0J2tmTBQCcFk60J2vmTNa3J/m0JM+sqiSp\nJJ3kCd39KxPrAAAYbmOXcDgeM1kAwOnilHp3IQDAJwMhCwBgACELAGAAIQsAYAAhCwBgACELAGAA\nIQsAYAAhCwBgACELAGAAIQsAYAAhCwBgACELAGAAIQsAYIDTOmQty6JPfepTn/o8hfrVpz4/2fo8\nESFLn/rUpz4/Cfsc1a8+9fnJ1ueJnNYhCwDgVCVkAQAMUN296Ro+QVWdWgUBAJxAd9du50+5kAUA\ncCawXAgAMICQBQAwwGkZsqrqwVX1saq6w5r6u6qqLqmqN1bV66rqHmvq9zOq6qKqeltVvbaqfquq\nbreGOt9cVW+oqsdU1a7rwCfZ7xtWf37/gD4/aw19fnpVPb+q3r76fL6yqh60j/4uP+b5I6vq6fut\n83j9n2p97uyrqh5YVW+pqs9cV5/rsPo6f96O59etqn+oqpesod+f2PH8sVX1I/vs89ZV9eKqeuvq\na/5pVXXWPvs8+nV0aVW9sKpuuJ/+dqnz7VX101V1vTXW+RtVdc5+61z1+7jV97s3rfr/on32d4sd\n35P+pqres+P5Sf1bVdVtqurSY84dqarHnGR/L6+q+x5z7lFV9YyT7O+pVfU9O56/tKqeteP5k6vq\ne0+y73Or6h1V9Smr5zdfPd/X9/uqekVV3X/H84dV1e/so78H7/h3Pvpz6aqq+or91LkXp2XISvLw\nJK9IcsGa+ruiu+/e3XdN8kNJnrimfn89ycu7+/bd/UVJfjDJZ+yjv6N13jnJfZM8IMmRNdR5tN+7\nrf788QF9/tUa+nxxkqW7b7f6fD48ybn76G+3DYnr3KQ4YsPj2uurqvsk+ckk9+/ud6+jzzW6Ismd\nq+oGq+f3TbLfGpPkw0m+pqpusYa+jnpRkhd19x2S3CHJTZP82D77PPp1dJckH0nyHfvsL/nEOm+f\n5EZJfuIaPV83AAAJmUlEQVTEH3KNdtb5/iTftc/+svpl94FJ7trdn5/kUPb5b9/d7zv6PSnJM5M8\ndcf3qI/up+v91HWMX8q//Nn28NX5k/HKJPdMktUv5bdMcqcdr98zycUn03F3vyfJzyZ50urUE5P8\ntzV8v/+OJE+tqutX1U2S/Nck33mynXX3i3f8O999VfMfdvfv7rPOa3TahayqunGSeyX55qwvZO2c\nDbpZkvftu8Oqeyf5X9397KPnuvvS7n7lfvte9XVZkm9L8t1r6G7fs2Gj+6yq85N8+JjP57u7+6R+\nuyPJ9vfcL0vyc0m+srv/csP1HM/vJPnK1fEFSS5aQ58fTfKsJCc123Cs1f/PD3b385Kkt99R9Ogk\n37SO2aeVVyQ56Znw5IR1PqKqbrT/EpMkr0py6zX0c6sklx0NP6uA9Ldr6PeoEd/31uHXkjzw6Mxa\nVd0mya328bPj4qxCVrbD1ZuTXF5VN6uq6ye5Y5JL9lHvTyb5t1X1qNU4T9lHX0mS7v6TJC9J8gNJ\n/nOS567r+1Ntr4D9SJJvWEd/1+S0C1lJHpTkpd399iSXVdXd1tDn2aspxD/L9jfe/3sNfd45yevX\n0M9xdfc7k1ynqj5tn12dXZ+4tPewNZS3s89fW0N/d8r+vhHs5kY7p4+TPH7N/Z/qbpDt2dYHd/fb\nNl3McXSSFyS5YDWb9XlJXrOmfp+R5D9U1U3X0N+dcszXe3dfnuRd2V8wqiRZ/cB9QJJLT9z8Gh2v\nzndmPXVeN8l9sv0Dcr9+L8lnrZaxn1FV/24NfZ7yuvv9Sf4o2//eyfYs1i/vo7+/SfKRqjo3H5+1\nek2SL0nyhUku3c8s3upjvz/J05I8qruvOtm+jvGjSb4+yf2TrGN15ejX0fOTPLq737uOPq/JvvYL\nbMgF2U7OSfLCbP8jvGGffV65mkI8OkX9i9kOSaeDdfw2dvXff41G9Hm1qvqZJF+a7dmtf3uS3XxC\njVX1yCRfsI76ThMfyfY33G9JclJ7Mmbo7jdX1YFsf+3/dtY0A9Hd/1xVz03yqCQfXEefu9hvrWdX\n1dFfLl6R5Of32d/xrKvOc5P8aZKt/RbU3VdU1d2TfFmS85O8oKp+4Ogs3CnkeEuF+1lCfEG2w9Vv\nrv78pn30lWx/nd8rH59pOnf1/H9mezlxvx6Y5K+T3CXJy9fQX7r7yqp6YZLLu/sj6+gzyX9J8ubu\n/tU19XeNTquZrKq6eba/2P6fqnpHku9Lso5Zl6t196uT3LKqbrnPrv4k278lDFNVt03y0e7+h5Hj\nnCL+JDsCUHd/d7Z/Y97vLN4ns6uSfG2SL66qH9x0MdfgJdneN7SOpcKdfirbWw/2u1T2pznm6321\n+fszk7x9H/1eeXQfSXc/ap/7hpLj1/kZSf58H/0e/YXls7Id2NaxjSG97Q+7+8Ik/ynJQ9fR75r9\nY5Jj9/bdIsll++jzN5LcZ7VSc3Z373ci4eiS4Z2zvVz46mzPZH1JTnI/1lFVdddsfy++R5LHVNV+\n9h0f62Orx75V1cEkD8ka9gteG6dVyMp2oHped392d9+2u2+T5J1V9aX77Pfq3+Kq6o7Z/rz84346\n7O6XJ7l+VX3Ljr7vUlX32ke3O+v8tGxv3FzHu+FO+T1Zq8/nDarq23ecvvE+ux29J+NU3fNxVHX3\nh7K93+nrq2q/vy0n6/87H+3vF5I8frVXY239rpZmfjnbs3knrbtflu3ZnG9Irl42e3KS56w+x/uq\nc11OUOfTu/vD++j66OfzQ9meGXxsVe3r50tV3aE+8d3Yd8328usppbuvSPLXq324Wb2Z4iuS/I99\n9rlk+//9On6xuDjJVyV53yq4vj/Jp2QNISvbm8gftdoE/+NZw56sdVtN0PxCkkd095Uzxz7dQtbX\nZXsPyU4vyv43wN9wx76ci7L9D7GOd4s8JMl9a/tt0pdm+51G+9m4ebTON2d7v8JLu/tH11Dn1X//\n1Z/7fUdUMuaddQ9OcrCq/qKqXp3kOdneC3CyRt/uYK39r34g7ucH4bE6uTpoPCDJ46rqq/bZ59lV\n9VdV9e7Vn/tdhjxa43u7+2f22de/6HflKUk+Nfv/93pIkq+tqrcmeUu2lyAft88+R/wffUiSh63q\nvCzJVd2933dUX11nd78xyZuy/+/LN0ny3Nq+hMMbk3xukgv32ecoj0jyn1c/Q/7/JBeu9szux0XZ\n3oO4jpB1abb/j7/qmHP/1N0n/UavqvrWJO9a/RKcbP/if8fVG2pOJd+e7VWPZw7Yf3xCbqsDp4mq\n+vwkP9fda7mOG6z2oF6U5CGrcASskZAFp4HVMul/yva0/Ms2XQ8A10zIAgAY4HTbkwUAcFoQsgAA\nBhCyAAAGELIAAAYQsoBTRlVdtbp+zaVV9cL93Fy5qr68qn5zdfzVVXXca6qtbpb7f5zEGEeqai03\nmQbOPEIWcCq5YnULmbtk+96K33Fsg6q6NldBP3ox09/s7hPdZPbmSb7zWlUKcA2ELOBU9Yokt6uq\n21TVW6rquas7J5xbVfetqour6nWrGa8bJUlV3b+q/qyqXpfka452VFWPrKqnr44/vapeVFVvXF35\n+R5JnpDkvNUs2pNW7b6vqv5o1e7Ijr4eV1V/XlV/mORz5n06gNPNWZsuAGCHSpKqOivbt/r5/1bn\nb5/kcHe/tqo+NckPJ7lPd39wtQz4mKr6iSTPSnKwu99RVS88pu+jFwX86SRLd3/NalbsJkl+IMmd\nVjc5TlXdN8ntu/uLV21esrpH6pXZvqn25yW5fpJLkrxuwOcBOAMIWcCp5OyqumR1/IokP5/k1kn+\nsrtfuzp/jyT/JskrVwHoetm+J9sdk7yju9+xavffk3zrLmOcn+RwkqzuUXr56qa+O90v2/cdvSTb\nwe/G2Q565yT59dXNlD9cVS/Z718YOHMJWcCp5Mqjs0lHrbZgXbHzVJLf6+7/cEy7z1+9dk32cpuL\nSvKE7n72MWM8ag8fC5DEnizg1HK8kLTz/KuT3KuqzkuSqrpRVd0+yVuS3KaqPnvV7oLj9PWyrDa5\nV9V1quqcJJcnuemONr+b5Juq6sardv+6qj4tyR8meXBV3aCqbprkq6/13xD4pCFkAaeS480yXX2+\nuy9L8o1JLqqqNyW5OMnnrJbwvj3J76w2vv/dcfr63iT3rqo/zvZ+qs/t7vclubiq/riqntTdW0ku\nSvKqVbtfSXKT7n5Dkl9O8sdJfjvJH+3vrwucydwgGgBgADNZAAADCFkAAAMIWQAAAwhZAAADCFkA\nAAMIWQAAAwhZAAADCFkAAAP8byXjomkscINHAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7cbf4aa6d8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 10)) \n",
    "plt.imshow(cm, interpolation='nearest')\n",
    "tick_marks = np.arange(len(letters)+1)\n",
    "plt.xticks(tick_marks, letters) \n",
    "plt.yticks(tick_marks, letters) \n",
    "plt.ylabel('Actual') \n",
    "plt.xlabel('Predicted')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The number of steps needed is: 1\n"
     ]
    }
   ],
   "source": [
    "from nltk.metrics import edit_distance \n",
    "steps = edit_distance(\"STEP\", \"STOP\") \n",
    "print(\"The number of steps needed is: {0}\".format(steps))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def compute_distance(prediction, word):\n",
    "    \n",
    "    len_word = min(len(prediction), len(word))\n",
    "    \n",
    "    return len_word - sum([prediction[i] == word[i] for i in range(len_word)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from operator import itemgetter \n",
    "\n",
    "def improved_prediction(word, net, dictionary, shear=0.2, scale=1.0): \n",
    "    captcha = create_captcha(word, shear=shear, scale=scale) \n",
    "    prediction = predict_captcha(captcha, net) \n",
    "    \n",
    "    if prediction not in dictionary:\n",
    "        distances = sorted([(word, compute_distance(prediction, word)) for word in dictionary], key=itemgetter(1))\n",
    "        best_word = distances[0] \n",
    "        prediction = best_word[0]\n",
    "    return word == prediction, word, prediction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number correct is 3945\n",
      "Number incorrect is 1568\n"
     ]
    }
   ],
   "source": [
    "num_correct = 0 \n",
    "num_incorrect = 0 \n",
    "for word in valid_words: \n",
    "    shear = random_state.choice(shear_values)\n",
    "    scale = random_state.choice(scale_values)\n",
    "    correct, word, prediction = improved_prediction(word, clf, valid_words, shear=shear, scale=scale)\n",
    "    #print(correct, word, prediction)\n",
    "    if correct: \n",
    "        num_correct += 1 \n",
    "    else: \n",
    "        num_incorrect += 1\n",
    "        #if len(prediction) == len(word):\n",
    "        #    print(word, prediction)\n",
    "print(\"Number correct is {0}\".format(num_correct)) \n",
    "print(\"Number incorrect is {0}\".format(num_incorrect))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7155813531652457"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p = num_correct/(num_correct+num_incorrect)\n",
    "p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
